//package com.simin.base.apputils;
//
//import android.Manifest;
//import android.annotation.SuppressLint;
//import android.app.AlertDialog;
//import android.content.Context;
//import android.content.DialogInterface;
//import android.content.Intent;
//import android.content.pm.ActivityInfo;
//import android.graphics.Color;
//import android.net.Uri;
//
//import androidx.annotation.Nullable;
//import androidx.fragment.app.Fragment;
//import androidx.fragment.app.FragmentActivity;
//
//import com.zhihu.matisse.Matisse;
//import com.zhihu.matisse.MimeType;
//import com.zhihu.matisse.engine.impl.GlideEngine;
//import com.zhihu.matisse.internal.entity.CaptureStrategy;
//
//import java.util.ArrayList;
//import java.util.Arrays;
//import java.util.HashSet;
//import java.util.List;
//import java.util.Set;
//
///**
// * date:2023/10/17
// * author:wsm
// * faucation:选择图片
// */
//public class MatisseUtils {
//
//    public static List<String> obtainPathResult(@Nullable Intent data) {
//        return Matisse.obtainPathResult(data);
//    }
//
//    /**
//     * 单选
//     *
//     * @param activity
//     * @param requestCode
//     */
//    public static void onSingle(FragmentActivity activity, int requestCode) {
//        onMultiple(activity, 1, requestCode);
//    }
//
//
//    /**
//     * 视频单选
//     *
//     * @param activity
//     * @param requestCode
//     */
//    public static void onVideoSingle(FragmentActivity activity, int maxDuration, int requestCode) {
//        onVideoMultiple(activity, 1, maxDuration, requestCode);
//    }
//
//    /**
//     * 处理图片选择
//     *
//     * @param activity
//     * @param maxSelectable 最大选择数
//     * @param requestCode
//     */
//    @SuppressLint("CheckResult")
//    public static void onMultiple(FragmentActivity activity, int maxSelectable, int requestCode) {
//        //Matisse 使用说明：https://github.com/zhihu/Matisse/wiki
//        PermissionUtils.INSTANCE.checkPermissionCameraStorage(activity, new PermissionUtils.PermissionsCallback() {
//            @Override
//            public void onGranted() {
//                Matisse.from(activity)
//                        .choose(getImageMimeType(), true)
//                        .countable(true)//true:选中后显示数字;false:选中后显示对号
//                        .capture(false)//选择照片时，是否显示拍照
//                        .captureStrategy(//参数1 true表示拍照存储在共有目录，false表示存储在私有目录；参数2与 AndroidManifest中authorities值相同，用于适配7.0系统 必须设置
//                                new CaptureStrategy(true, activity.getPackageName() + ".fileprovider", "TAP_Zxs")
//                        ) //存储到哪里
//                        .maxSelectable(maxSelectable)//可选的最大数
//                        .restrictOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT)
//                        .thumbnailScale(0.85f)//缩放比例
//                        .imageEngine(new GlideEngine())
//                        .originalEnable(true)
//                        .maxOriginalSize(10)
//                        .showSingleMediaType(true)
//                        .autoHideToolbarOnSingleTap(true)
//                        .forResult(requestCode);
//            }
//        });
//    }
//
//    /**
//     * 处理视频选择
//     *
//     * @param activity
//     * @param maxSelectable 最大选择数
//     * @param requestCode
//     */
//    @SuppressLint("CheckResult")
//    public static void onVideoMultiple(FragmentActivity activity, int maxSelectable, int maxDuration, int requestCode) {
//        //Matisse 使用说明：https://github.com/zhihu/Matisse/wiki
//        PermissionUtils.INSTANCE.checkPermissionCameraStorage(activity, new PermissionUtils.PermissionsCallback() {
//            @Override
//            public void onGranted() {
//                Matisse.from(activity)
//                        .choose(MimeType.ofVideo(), true)
//                        .countable(true)//true:选中后显示数字;false:选中后显示对号
//                        .capture(false)//选择照片时，是否显示拍照
//                        .captureStrategy(//参数1 true表示拍照存储在共有目录，false表示存储在私有目录；参数2与 AndroidManifest中authorities值相同，用于适配7.0系统 必须设置
//                                new CaptureStrategy(true, activity.getPackageName() +".fileprovider", "TAP_Zxs")
//                        ) //存储到哪里
//                        .maxSelectable(maxSelectable)//可选的最大数
////                        .addFilter(new VideoSizeFilter(maxDuration))
//                        .restrictOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT)
//                        .thumbnailScale(0.85f)//缩放比例
//                        .imageEngine(new GlideEngine())
//                        .originalEnable(true)
//                        .maxOriginalSize(10)
//                        .showSingleMediaType(true)
//                        .autoHideToolbarOnSingleTap(true)
//                        .forResult(requestCode);
//            }
//        });
//    }
//
//    /**
//     * 支持所有类型选择
//     *
//     * @param activity
//     * @param maxSelectable 最大选择数
//     * @param requestCode
//     */
//    @SuppressLint("CheckResult")
//    public static void onAllMultiple(FragmentActivity activity, int maxSelectable, int requestCode) {
//        //Matisse 使用说明：https://github.com/zhihu/Matisse
//        PermissionUtils.INSTANCE.checkPermissionCameraStorage(activity, new PermissionUtils.PermissionsCallback() {
//            @Override
//            public void onGranted() {
//                Matisse.from(activity)
//                        .choose(getAllMimeType(), true)
//                        .countable(true)//true:选中后显示数字;false:选中后显示对号
//                        .capture(false)//选择照片时，是否显示拍照
//                        .captureStrategy(//参数1 true表示拍照存储在共有目录，false表示存储在私有目录；参数2与 AndroidManifest中authorities值相同，用于适配7.0系统 必须设置
//                                new CaptureStrategy(true, activity.getPackageName()+".fileprovider", "TAP_Zxs")
//                        ) //存储到哪里
//                        .maxSelectable(maxSelectable)//可选的最大数
//                        .restrictOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT)
//                        .thumbnailScale(0.85f)//缩放比例
//                        .imageEngine(new GlideEngine())
//                        .originalEnable(true)
//                        .maxOriginalSize(10)
//                        .autoHideToolbarOnSingleTap(true)
//                        .forResult(requestCode);
//            }
//        });
//    }
//
//
//    /**
//     * 开启权限提示
//     */
//    public static void showDialog(Context context) {
//        showDialog(context, null);
//    }
//
//    public static void showDialog(Context context, onDialogPermissionCallback callback) {
//        //至少一个权限未授予且勾选了不再提示
//        AlertDialog alertDialog = new AlertDialog.Builder(context)
//                .setTitle("开启权限")
//                .setMessage("您还没有开启权限,")
//                .setNegativeButton("取消", new DialogInterface.OnClickListener() {
//                    @Override
//                    public void onClick(DialogInterface dialog, int i) {
//                        if (callback != null) {
//                            callback.onCancel();
//                        }
//                        dialog.dismiss();
//                    }
//                })
//                .setPositiveButton("去开启权限", new DialogInterface.OnClickListener() {
//                    @Override
//                    public void onClick(DialogInterface dialog, int which) {
//                        if (callback != null) {
//                            callback.onSure();
//                        }
//                        dialog.cancel();
//                        openPermission(context);
//                    }
//                })
//                .show();
//        alertDialog.getButton(DialogInterface.BUTTON_NEGATIVE).setTextColor(Color.parseColor("#000000"));
//        alertDialog.getButton(DialogInterface.BUTTON_POSITIVE).setTextColor(Color.parseColor("#000000"));
//
//    }
//
//    /**
//     * 打开权限界面
//     *
//     * @param context
//     */
//    public static void openPermission(Context context) {
//        Intent intent = new Intent();
//        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
//        intent.setAction("android.settings.APPLICATION_DETAILS_SETTINGS");
//        intent.setData(Uri.fromParts("package", context.getPackageName(), null));
//        context.startActivity(intent);
//    }
//
//    /**
//     * 获取图片的选择范围
//     *
//     * @return 根据测试文档图片只支持 jpg jpeg png格式
//     */
//    public static Set<MimeType> getImageMimeType() {
//        Set<MimeType> data = new HashSet<>();
//        data.add(MimeType.JPEG);
//        data.add(MimeType.PNG);
//        data.add(MimeType.WEBP);
//        return data;
//    }
//
//
//    /**
//     * 获取全部的选择范围
//     *
//     * @return 根据测试文档图片只支持 jpg jpeg png格式
//     */
//    public static Set<MimeType> getAllMimeType() {
//        Set<MimeType> data = new HashSet<>();
//        data.add(MimeType.JPEG);
//        data.add(MimeType.PNG);
//        data.add(MimeType.WEBP);
//        data.addAll(MimeType.ofVideo());
//        return data;
//    }
//
//    public interface onDialogPermissionCallback {
//        void onCancel();
//
//        void onSure();
//    }
//
//    public static class onPermissionCallback{
//        public void onSure(){}
//        public void onCancel(){}
//    }
//}
